#ifndef _SERIALISE_CORE_
#define _SERIALISE_CORE_

#include "../os/string.h"
#include <cstdlib>
#include <stdlib.h>

namespace sleek
{
    namespace core
    {
        namespace serialise
        {
                static long last_shear = 0;
            /************************************************************************/
                const char* copyCharAndAdd(const char*,const char*);
            /************************************************************************/
                os::stringc findNextBlocName(os::stringc,unsigned long pos = 0);
                unsigned long findBloc(os::stringc,os::stringc,unsigned long pos = 0);
                os::stringc SerialiseLigne  (os::stringc,os::stringc,const char*tablature="");
                os::stringc SerialiseBlocBegin(os::stringc,const char*tablature="");
                os::stringc SerialiseBlocEnd  (os::stringc,const char*tablature="");
            /************************************************************************/
                os::stringc getSerialiseBlocNext(os::stringc,os::stringc);
                os::stringc getSerialiseLigneNext(os::stringc,os::stringc);

                os::stringc getSerialiseBloc(os::stringc,os::stringc);
                os::stringc getSerialiseLigne(os::stringc,os::stringc);

                os::stringc getSerialiseBloc(os::stringc,os::stringc,long &pos);
                os::stringc getSerialiseLigne(os::stringc,os::stringc,long &pos);
                os::stringc getSerialiseLigneType(os::stringc);
            /************************************************************************/
                ///char*  IntToChar   (int);
                os::stringc BoolToChar  (bool);
                /*os::stringc Vector3DToChar  (irr::core::vector3df v3d);
                os::stringc MaterialFalgToChar(irr::video::E_MATERIAL_FLAG);
                os::stringc SColorToChar(irr::video::SColor);
                os::stringc SColorfToChar(irr::video::SColorf);*/
                /***************************************************************/
                /*irr::core::vector3df CharToVecor3df(os::stringc);
                irr::video::SColor   CharToSColor(os::stringc);
                irr::video::SColorf  CharToSColorf(os::stringc);*/
                bool   CharToBool   (os::stringc);
                int    CharToInt    (os::stringc);
                double CharToLong   (os::stringc);
                float  CharToFloat  (os::stringc);// return exemple 0.00000000 not more after point
                double CharToDouble (os::stringc);// return exemple 0.00000000 not more after point
                /*irr::video::E_MATERIAL_FLAG  CharToMaterialFalg(os::stringc);
                irr::video::E_MATERIAL_TYPE  CharToMaterialType(os::stringc);*/
            /************************************************************************/
        }
    }
}
#endif
